package net.csdn.business.common.domain.vo.notify;

import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import net.csdn.business.common.constant.CommonConstants;
import net.csdn.business.common.domain.vo.SuperVO;

import java.util.Date;


/**
 * 通知中心-用户通知记录对象VO notify_remind_record
 * 
 * @author ruoyi
 * @date 2023-11-27
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class NotifyRemindRecordVO extends SuperVO
{

    /** 请求批次号 */
    private String batchNum;
    /** 业务编码 */
    private String businessCode;
    /** 发送者id，当为-1时，为系统发送 */
    private String senderId;
    /** 接收者id */
    private String receiverId;
    /** 接收者账号 */
    private String receiverAccount;
    /** 通知通道 */
    private Integer notifyChannel;
    /** 触发动作 */
    private String act;
    /** 被操作对象id，例如：项目、ISSUE、PullRequest的id */
    private String targetId;
    /** 被操作对象类型，例如：project:项目、issue:issue、pull_request:合并请求 */
    private String targetType;
    /** 操作对像所属主体的命名空间信息：{id：命名空间id;type:类型（eg:project:项目；org:组织；user:个人);path：命名空间路径；name:名称路径} */
    @TableField(typeHandler = FastjsonTypeHandler.class)
    private JSONObject nameSpace;
    /** 消息内容 */
    private String content;
    /** 触发通知动作的主体的url*/
    private String url;
    /** 通知投递状态：0：未投递；1：投递成功；-1：投递失败 */
    private Integer notifyState;
    /** 是否已读：1：已读；0：未读 */
    private Integer readState;
    /** 用户读取时间 */
    @JsonFormat(pattern = CommonConstants.DEFAULT_PATTERN, timezone = CommonConstants.DEFAULT_TIMEZONE)
    private Date readDate;

}
